package com.shujia.eight;

import org.junit.Test;

import java.util.Calendar;
import java.util.Date;

import static java.util.Calendar.*;

public class CalendarDemo {

    @Test
    public void test2() throws Exception {
//        public final void set(int year, int month, int date)：设置Calendar对象的年月、日3个字段的值
        Calendar calendar = Calendar.getInstance();
        // 获取月份时：一月是0，二月是1，以此类推，12月是11
        calendar.set(2025, 6, 5);
        System.out.println(DateUtils.dateToStr(calendar.getTime()));
//        public final void set(int year, int month, int date, int hourOfDay, int minute, int second)：设置Calendar对象的年、日、时、分、秒6个字段的值
        calendar.set(2024, 5, 25, 10, 30, 45);
        System.out.println(DateUtils.dateToStr(calendar.getTime()));
//        public void set(int field, int value)：将给定的日历字段设置为给定值
        calendar.set(YEAR, 2022);
        calendar.set(MONTH, 2);
        calendar.set(DAY_OF_MONTH, 8);
        calendar.set(HOUR_OF_DAY, 15);
        calendar.set(MINUTE, 30);
        calendar.set(SECOND, 59);
        System.out.println(DateUtils.dateToStr(calendar.getTime()));

//        cal.setLenient(false);
//        当设置的File的value超过限制后，传入的参数不合法，会自动容错
        // calendar.setLenient(false); 使用默认的true就可以, 不用手动去修改
        calendar.set(DAY_OF_MONTH, 31);
        System.out.println(DateUtils.dateToStr(calendar.getTime()));


//        public void add(int field, int amount)：根据日历的规则,为给定的日历字段添加或减去指定的时间量
//        public void roll(int field, int amount)：将给定的日历字段设置为给定值

//        获取星期时：周日是1，周二是2 ， 。。。。周六是7

    }

    @Test
    public void test1() throws Exception {
        // 创建的Calendar对象表示的是当前时间
        Calendar calendar = Calendar.getInstance();
        // 获取Date对象
        Date time = calendar.getTime();
        System.out.println(DateUtils.dateToStr(time));

        String str = "2008-08-08 08:59:59";
        Date date = DateUtils.strToDate(str);
        calendar.setTime(date);
        System.out.println(DateUtils.dateToStr(calendar.getTime()));

    }
}
